package com.example.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.example.entity.ArticleFavorite;
import com.example.vo.ArticlePageVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * <p>
 * 文章收藏表 Mapper 接口
 * </p>
 */
@Mapper
public interface ArticleFavoriteMapper extends BaseMapper<ArticleFavorite> {
    
    /**
     * 检查用户是否收藏了文章
     * @param articleId 文章ID
     * @param userId 用户ID
     * @return 是否收藏
     */
    Integer checkUserFavorite(@Param("articleId") Integer articleId, @Param("userId") Integer userId);
    
    /**
     * 获取用户收藏的文章列表，分页
     * @param page 分页对象
     * @param userId 用户ID
     * @return 文章列表
     */
    IPage<ArticlePageVO> getUserFavoriteArticles(Page<ArticlePageVO> page, @Param("userId") Integer userId);
    
    /**
     * 计算用户收藏总数
     * @param userId 用户ID
     * @return 收藏总数
     */
    Integer countUserFavorites(@Param("userId") Integer userId);
} 